package com.ciccwm.log.model;

import lombok.Builder;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Map;

@Data
@Builder
public class InvokeContext {
    /**
     * 请求ID，用于追踪请求链路
     */
    private String reqId;

    /**
     * 请求日期
     */
    private LocalDate reqDate;

    /**
     * 请求时间
     */
    private LocalDateTime reqTime;

    /**
     * 请求头信息
     */
    private Map<String, String> reqHeader;

    /**
     * 请求体
     */
    private Object reqBody;
    /**
     * 请求异常
     */
    private Throwable throwable;

    /**
     * 响应时间
     */
    private LocalDateTime rspTime;

    /**
     * 响应头信息
     */
    private Map<String, String> rspHeader;

    /**
     * 响应体
     */
    private Object rspBody;

    /**
     * 响应码
     */
    private Integer rspCode;

    /**
     * 响应消息
     */
    private String rspMsg;

    /**
     * 请求是否异常
     *
     * @return true：异常，false：正常
     */
    public boolean isException() {
        return throwable != null;
    }
}
